<?php
namespace App\Jobs;

use App\Service\TestService;
use Hhxsv5\LaravelS\Swoole\Task\Task;
use Illuminate\Support\Facades\Log;
use Swoole\WebSocket\Server;
class TestTask extends Task
{
    // 待处理任务数据
    private $data;
    private $Socketserver;
    // 任务处理结果
    private $result;

    public function __construct($data)
    {
        $this->data = $data;
    }

    // 任务投递调用 task 回调时触发，等同于 Swoole 中的 onTask 逻辑
    public function handle()
    {
        $service=new TestService();
        Log::info(__CLASS__ . ': 开始处理任务', [$this->data]);
        //  todo 耗时任务具体处理逻辑在这里编写
//        sleep(10); // 模拟任务需要3秒才能执行完毕
        switch ($this->data['renwu']){
            case "A":
                $service->A($this->data['data']);
                break;
            case "push":
                $service->Push($this->data);
                break;
            case "C":
                $service->A($this->data['data']);
                break;
            default:
                $service->A($this->data['data']);
                break;
        }


        $this->result = 'The result of ' . $this->data['renwu'] . ' is balabalabala';
    }

    // 任务完成调用 finish 回调时触发，等同于 Swoole 中的 onFinish 逻辑
    public function finish()
    {

        Log::info(__CLASS__ .strtotime("now") .': 任务处理完成', [$this->result]);
        // 可以在这里触发后续要执行的任务，或者执行其他善后逻辑
    }
}